package com.gitee.qdbp.general.system.api.personnel.service;

import com.gitee.qdbp.able.exception.ServiceException;
import com.gitee.qdbp.base.system.model.IAccount;

/**
 * 用户管理业务接口<br>
 * 运营人员重置别人的密码/锁定/解锁别人的账号之类的操作
 *
 * @author zhaohuihua
 * @version 170214
 */
public interface IUserManageExecutor {

    /**
     * 重置密码
     * 
     * @param id 待重置密码的用户
     * @param newPassword 新密码
     * @param me 操作员
     * @throws ServiceException
     */
    void resetPassword(String id, String newPassword, IAccount me) throws ServiceException;

    /**
     * 锁定用户
     * 
     * @param id 待锁定的用户
     * @param me 操作员
     * @throws ServiceException
     */
    void disable(String id, IAccount me) throws ServiceException;

    /**
     * 解锁用户<br>
     * > 只有锁定状态的用户才能解锁, 通过where条件限制<br>
     * > 如果一个都没有成功则报错; 只要成功了一个就算成功<br>
     * 
     * @param id 待解锁的用户
     * @param me 操作员
     * @throws ServiceException
     */
    void enable(String id, IAccount me) throws ServiceException;

}
